#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <bits/stdc++.h>
using namespace std;
int a[1000][1000], b[1000][1000]; // b记录一开始的坐标x，y到每个不是陷阱的点的距离。
int main()
{
    int n, m;
    int mins;
    int i, j, k;
    int x, y;
    int s = 0;
    cin >> n >> m;
    cin >> x >> y;
    cin >> k;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= m; j++)
        {
            cin >> a[i][j];
            if (a[i][j] == -1)
                b[i][j] = -1; // b为-1代表不可走
        }
    }
    if (a[x][y] == 1)
    {
        cout << s << " " << (k - s + 1) * 10 << endl;
    }
    else if (a[x][y] == -1)
        cout << "Die" << endl;
    else
    {
        int flag = 0;
        s = 1;
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= m; j++)
            {
                if (abs(x - i) + abs(y - j) == 1) // 1步到达的范围
                {
                    if (a[i][j] == 1)
                    {
                        flag = 1;
                        cout << s << " " << (k - s + 1) * 10 << endl;
                        if (flag == 0)
                            cout << "0" << endl;
                        return 0;
                    }
                    else if (a[i][j] == 0)
                    {
                        b[i][j] = 1;
                    }
                }
            }
        }
        for (s = 2; s <= k; s++) // 走s步扩散到的范围
        {
            for (i = 1; i <= n; i++)
            {
                for (j = 1; j <= m; j++)
                {
                    if (b[i][j] == s - 1)
                    {
                        if (i - 1 >= 1 && b[i - 1][j] == 0) // 向上走
                        {
                            b[i - 1][j] = s;
                        }
                        if (i + 1 <= n && b[i + 1][j] == 0) // 向下走
                        {
                            b[i + 1][j] = s;
                        }
                        if (j - 1 >= 1 && b[i][j - 1] == 0) // 向左走
                        {
                            b[i][j - 1] = s;
                        }
                        if (j + 1 <= m && b[i][j + 1] == 0) // 向右走
                        {
                            b[i][j + 1] = s;
                        }
                    }
                }
            }
        }
        mins = 9999999;
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= m; j++)
            {
                if (a[i][j] == 1 && b[i][j] < mins && b[i][j] != 0) // 寻找满足条件的最小距离。
                {
                    mins = b[i][j];
                }
            }
        }
        if (mins < 9999999)
        {
            flag = 1;
            cout << mins << " " << (k - mins + 1) * 10 << endl;
        }
        if (flag == 0)
            cout << "0" << endl;
    }
}

// int main()
// {
//     int T = 0;
//     scanf("%d", &T);
//     long long results[51] = {0, 1, 2, 4};
//     for (int i = 4; i < 51; ++i)
//     {
//         results[i] = results[i - 1] + results[i - 2] + results[i - 3];
//     }
//     for (int i = 0; i < T; ++i)
//     {
//         long long tmp = 0;
//         scanf("%lld", &tmp);
//         printf("%lld\n", results[tmp]);
//     }
//     return 0;
// }

// #include <stdio.h>
// #include <string.h>
// #include <stdlib.h>
// int main()
// {
//     int n;
//     int a[1005] = {0};
//     a[1] = 2;
//     for (int i = 2; i <= 1000; i++)
//         a[i] = a[i - 1] + 2 * (i - 1);
//     while (scanf("%d", &n) != EOF)
//         printf("%d\n", a[n]);
//     return 0;
// }

// int main()
// {

//     int a = 0;
//     int b = 0;
//     scanf("%d %d", &a, &b);
//     int result = 0;
//     printf("%d\n", b / a + b / a / 3);
//     return 0;
// }

// char name[100][1000] = {0};
// int data[100][2] = {0};
// int compare(const void *a, const void *b)
// {
//     return ((int *)a)[1] < ((int *)b)[1];
// }
// int main()
// {
//     int n = 0;
//     while (scanf("%d", &n) != EOF)
//     {
//         for (int i = 0; i < n; ++i)
//         {
//             int arr[2] = {0};
//             scanf("%s %d %d", name + i, arr, arr + 1);
//             data[i][0] = i;
//             data[i][1] = arr[0] * arr[1];
//         }
//         qsort(data, n, 2 * sizeof(int), compare);
//         for (int i = 0; i < n; ++i)
//         {
//             printf("%s\n", name[data[i][0]]);
//             // printf("%d\n", data[i][0]);
//         }
//     }

//     return 0;
// }

// char a[100][100];
//  int main(void)
//  {
//      int i, j, n, m, p, u;
//      while (scanf("%d%d", &n, &m) != EOF)
//      {
//          p = m - 1;
//          for (i = 0; i < m; i++)
//          {
//              for (j = 0; j < n + m - 1; j++)
//              {
//                  if (j < p)
//                      a[i][j] = ' ';
//                  else
//                      a[i][j] = '*';
//              }
//              p--;
//          }
//          u = m - 2;
//          for (i = m; i < 2 * m - 1; i++)
//          {
//              for (j = 0; j < n + m - 1; j++)
//              {
//                  strcpy(a[i], a[u]);
//              }
//              u--;
//          }
//          for (i = 0; i < m * 2 - 1; i++)
//          {
//              for (j = 0; j < n + m - 1; j++)
//              {
//                  printf("%c", a[i][j]);
//              }
//              printf("\n");
//          }
//          memset(a, '\0', sizeof(a));
//      }
//      return 0;
//  }
#if 0
int arr[21][21] = {0};
int tmp[21][21] = {0};
int main()
{
    int N = 0;
    int M = 0;
    scanf("%d %d", &N, &M);
    int X = 0;
    int Y = 0;
    scanf("%d %d", &X, &Y);
    int K = 0;
    scanf("%d", &K);
    for (int i = 1; i <= N; ++i)
    {
        for (int j = 1; j <= M; ++j)
        {
            scanf("%d", &(arr[i][j]));
            if (arr[i][j] == -1)
                tmp[i][j] = -1;
        }
    }
    if (arr[X][Y] == -1)
        printf("Die\n");
    else if (arr[X][Y] == 1)
        printf("0 %d\n", (K + 1) * 10);
    else
    {
        int flag = 0;
        int s = 1;
        for (int i = 1; i <= N; i++)
        {
            for (int j = 1; j <= M; j++)
            {
                if (abs(X - i) + abs(Y - j) == 1) // 1步到达的范围
                {
                    if (arr[i][j] == 1)
                    {
                        flag = 1;
                        printf("%d %d\n", s, (K - s + 1) * 10);
                        if (flag == 0)
                            printf("0\n");
                        return 0;
                    }
                    else if (arr[i][j] == 0)
                    {
                        tmp[i][j] = 1;
                    }
                }
            }
        }
        for (s = 2; s <= K; s++) // 走s步扩散到的范围
        {
            for (int i = 1; i <= N; i++)
            {
                for (int j = 1; j <= M; j++)
                {
                    if (tmp[i][j] == s - 1)
                    {
                        if (i - 1 >= 1 && tmp[i - 1][j] == 0) // 向上走
                        {
                            tmp[i - 1][j] = s;
                        }
                        if (i + 1 <= N && tmp[i + 1][j] == 0) // 向下走
                        {
                            tmp[i + 1][j] = s;
                        }
                        if (j - 1 >= 1 && tmp[i][j - 1] == 0) // 向左走
                        {
                            tmp[i][j - 1] = s;
                        }
                        if (j + 1 <= M && tmp[i][j + 1] == 0) // 向右走
                        {
                            tmp[i][j + 1] = s;
                        }
                    }
                }
            }
        }
        int mins = 9999999;
        for (int i = 1; i <= N; i++)
        {
            for (int j = 1; j <= M; j++)
            {
                if (arr[i][j] == 1 && tmp[i][j] < mins && tmp[i][j] != 0) // 寻找满足条件的最小距离。
                {
                    mins = tmp[i][j];
                }
            }
        }
        if (mins < 9999999)
        {
            flag = 1;
            printf(" %d\n", (K - mins + 1) * 10);
        }
        if (flag == 0)
            printf("0\n");
    }
    return 0;
}
#endif
// long long func(int n)
// {
//     if (n == 1)
//         return 0;
//     if (n == 2)
//         return 5;
//     return 5 * func(n - 2) + 4 * func(n - 1);
// }

// int main()
// {
//     int n = 0;
//     while (scanf("%d", &n) != EOF)
//         printf("%lld\n", func(n));
//     return 0;
// }
// int main()
// {

//     int T = 0;
//     scanf("%d", &T);
//     for (int i = 0; i < T; ++i)
//     {
//         int arr[4] = {0};
//         scanf("%d %d %d %d", arr, arr + 1, arr + 2, arr + 3);
//         // x % 5 = a
//         // x % 6 = b
//         // x % 7 = c
//         // x % 11 = d
//         int num = arr[3];
//         while (!(num % 5 == arr[0] && num % 6 == arr[1] && num % 7 == arr[2]))
//         {
//             num += 11;
//         }
//         printf("%d\n", num);
//     }
//     return 0;
// }
// int main()
// {
//     int a = 0;
//     int b = 0;
//     scanf("%d %d", &a, &b);
//     if (a == b)
//         printf("tie\n");
//     else if (b == a % 3 + 1)
//         printf("win\n");
//     else
//         printf("lose\n");
//     return 0;
// }

// int arr[100][100] = {0};
// int main()
// {
//     int T = 0;
//     scanf("%d", &T);
//     for (int pos = 0; pos < T; ++pos)
//     {
//         int m = 0;
//         int n = 0;
//         scanf("%d %d", &m, &n);
//         // 行最小 列最大
//         int min[100] = {0};
//         for (int i = 0; i < m; ++i)
//         {
//             int col_min = 9999999;
//             for (int j = 0; j < n; ++j)
//             {
//                 scanf("%d", &arr[i][j]);
//                 if (arr[i][j] < col_min)
//                 {
//                     col_min = arr[i][j];
//                     min[i] = j;
//                 }
//             }
//         }
//         int total = 0;
//         for (int i = 0; i < n; ++i)
//         {
//             int max = -9999999;
//             int max_pos = -1;
//             for (int j = 0; j < m; ++j)
//             {
//                 if (arr[j][i] > max)
//                 {
//                     max = arr[j][i];
//                     max_pos = j;
//                 }
//             }
//             // min 第几行里的那一列最小
//             // max_pos 这一列的第几行最大
//             if (min[max_pos] == i)
//             {
//                 printf("A[%d][%d] ", max_pos + 1, i + 1);
//                 ++total;
//             }
//         }
//         if (total == 0)
//         {
//             printf("NO.\n");
//         }
//         else
//         {
//             printf("\n");
//         }
//         printf("\n");
//     }
//     return 0;
// }